#include<iostream>
using namespace std;
class Base {
public:
	int a;
	virtual void func() = 0;
	void gunc() {};
};

void Base::func(){
	cout << "func in Base" << endl;
}

class Derived :public Base {
public:
	void func() {
		cout << "func in Derived" << endl;
		Base::func();
		gunc();
	}
	void gunc() {
		cout << "gunc in Derived" << endl;
	}
	void f() = delete;

};

int main() {
	Base* d=new Derived();
	d->func();
	Derived* de=new Derived();

	Derived* pd = NULL;
	pd->gunc();
	pd->func();

}